//每一行两个*，主要看空格，空格分三种，第一个*前，第二个*中间，第三个*后面
//把情况分为两种，一种正序，另外一种逆序，实现正序即可
//正序时，初始化行数为1，从1到（n+1）/2，取等
//第一种空格:(n+1)/2 - i个,第二种空格2*（i-1）-1,第三种同第一种
//逆序时改变初始循序，并去掉最后一个值
#include<stdio.h>
int main() {
	int n, j, i, k;//奇数
	scanf("%d", &n);
	//正序
	for (i = 1; i <= (n + 1) / 2; i++) {
		//第一种空格
		for (j = 1; j <= (n + 1) / 2 - i; j++)
			printf(" ");
		printf("*");
		//第二种空格
		if (i != 1) {
			for (k = 1; k <= 2 * (i - 1) - 1; k++)
				printf(" ");
			printf("*");
		}
		//第三种空格
		for (j = 1; j <= (n + 1) / 2 - i; j++)
			printf(" ");
		printf("\n");
	}
	//逆序
	for (i = ((n + 1) / 2 - 1); i > 0; i--) {
		for (j = (n + 1) / 2 - i; j > 0; j--)
			printf(" ");
		printf("*");
		if (i != 1) {
			for (k = 2 * (i - 1) - 1; k > 0; k--)
				printf(" ");
			printf("*");
		}
		for (j = (n + 1) / 2 - i; j > 0; j--)
			printf(" ");
		printf("\n");
	}
	return 0;
}